1. Field of the Invention
The present invention relates to a componentware creating method and a recording medium which can efficiently carry out a link processing in a system in which other componentwares are dynamically linked during loading for a componentware.
2. Description of the Related Art
In recent years, a software to be used in an information apparatus such as a computer device, a mobile terminal device and a set top box for receiving a digital broadcast is referred to as a componentware (which will be hereinafter referred to as a component). In many cases, a software to be used as a part is combined. The component is loaded if necessary when a software program is to be started, for example, and is read onto a memory. Thus, the component is incorporated in the software for use.
The components read on the memory are linked to each other to constitute one software. The components are linked based on symbol information described in the component. The symbol information is automatically set through a compiler based on a declaration in a source file of a component during the creation of the component. The symbol information includes a symbol name for identifying the symbol information and a symbol value to be relative address information corresponding to the symbol name. The relative address information is an offset value of an address in an object file obtained by compiling a source file through a compiler, for example. The symbol name is represented by a combination of English numerals to be ten-numeric letters and symbols, for example.
By way of example, the component includes a plurality of functions and the symbol information is set for the respective functions. The symbol information is managed as a symbol information table in an object file obtained by compiling the source file of the component. When an execution file is to be created, the symbol information table on a component to be a linker is referred based on the symbol information described in a component to be a link source through a linker so that the components are linked. During execution, a corresponding function is called from the linker based on the symbol information of the link source.
In the case in which the linkage is to be carried out during the loading for a program, it is necessary to check that symbol information based on a declaration in the component to be the link source is present in the component to be the linker or not. This is carried out by retrieving desirable symbol information with reference to the symbol information table of the component to be the linker.
In the case in which the number of external symbols to be retrieved is small, it is possible to carry out a processing in a short time. However, an ordinary library has a large number of symbols. Therefore, there is a problem in that a long time is required for the retrieval. In addition, it is necessary to compare symbol names many times in order to retrieve an intended symbol. Consequently, there is a problem in that a longer time is required for processing a long symbol name.
Moreover, when the symbol names are compared and collated, it is necessary to expand, onto a memory, the symbol name to be retrieved. Therefore, there is a problem in that a large memory capacity is required.
Furthermore, in the case in which two or more different components having the same symbol name are loaded onto the same system, the collision of the symbol names is caused. In this case, there is a problem in that the priority of the symbol of the component depends on the order of loading or a load error is made.
On the other hand, in order to eliminate such a collision of the symbol names, Japanese Patent No. 2655612 has disclosed the following, for example. In the case in which the different loaded components have the same symbol name, a symbol defined for a loaded component earlier on a time basis has a priority according to the conventional art but a symbol of a newly loaded component can be referred. According to the method described in the Japanese Patent No. 2655612, however, also in the case in which two components created by separate developers have the same symbol name, for example, it is impossible to expect a correct operation because the components are regarded as the same symbol.